package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc CloneEvaObjTreeActualValueComReqDto
 * @使用场景
 */
@Data
public class CloneEvaObjTreeActualValueComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 实际值计算公式 SYSTEM_DOCKING:系统对接实际值 MANUAL_REPORT:人工填报实际值 CLONE_EVA_OBJECT:人工填报实际值克隆评价对象树 RIGHTWARD_CALCULATION:向左取最近可循环周期最新 RIGHTWARD_CALCULATION_SUM:向左取最近可循环周期求和 DOWNWARD_CALCULATION_SUM:向下计算参照值不赋值（求和） DOWNWARD_CALCULATION_SUM_COPY:向下计算参照值并赋值（求和） DOWNWARD_CALCULATION_WEIGHT:向下计算参照值不赋值（权重求和） DOWNWARD_CALCULATION_WEIGHT_COPY:向下计算参照值并赋值（权重求和）
     */
    @NotNull(message = "实际值计算公式不能为空")
    @ApiModelProperty("实际值计算公式")
    private String actualValueCalcFormula;

    /**
     * 归属周期ID
     */
    @NotNull(message = "归属周期ID不能为空")
    @ApiModelProperty("归属周期ID")
    private String cycleId;

    /**
     * 更新周期ID
     */
    @NotNull(message = "更新周期ID不能为空")
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 归属内容表主键ID
     */
    @NotNull(message = "归属内容表主键ID不能为空")
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @NotNull(message = "父子中过程周期类型不能为空")
    @ApiModelProperty("父子中过程周期类型")
    private String parentSubMidCycleType;

    /**
     * 冗余评价模板ID
     */
    @NotNull(message = "冗余评价模板ID不能为空")
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

}
